package com.ph.shopping.facade.mapper;

import java.util.List;

import com.ph.shopping.common.core.base.BaseMapper;
import com.ph.shopping.facade.product.entity.PhProduct;
import com.ph.shopping.facade.product.vo.PhProductVo;
import org.apache.ibatis.annotations.Param;

/**
 * 商品mapper
 * @author hewl
 * @version 1.0.0
 */
public interface PhProductMapper extends BaseMapper<PhProduct> {
		/**
		 * 商品查看单条/多条详情记录查询(不要使用分页查询)
		 * @param PhProductVo
		 * @return List<PhProductVo>
		 */
		List<PhProductVo> getPhProductVoDeliList(PhProductVo phProductVo);
		/**
		 * 商品列表查询 
 		 * @param PhProductVo
		 * @return List<PhProductVo>
		 */
		List<PhProductVo> getPhProductVoList(PhProductVo phProductVo) ;
		/**
		 * 逻辑删除商品
		 * @param phProductVo:id
		 * @return Integer
		 */
		Integer deleteLogicPhProduct(PhProductVo phProductVo);
		/**
		 * 审核商品
		 * @param phProductVo:id-auditState
		 * @return Integer
		 */
		Integer auditPhProduct(PhProductVo phProductVo);
		/**
		 * 商品上架、下架
		 * @param phProductVo:id-saleNoSaleStatus
		 * @return Integer
		 */
		Integer onsalPhProduct(PhProductVo phProductVo);

		/**
		 * 通过id查询商品信息
		 * @param productIds
		 * @return
		 */
		List<PhProductVo> getPhProductList(@Param(value = "productIds") List<Long> productIds);

		/**
		 * 扣除商品数量
		 * @param phProductVo
		 * @return
		 */
		Integer reduceStock(PhProductVo phProductVo);
}